PDT / Zend
PDT mit Zend Executable Debugger.
Eclipse PDT (PHP Developer Tools) installieren
Zunächst die PDT installieren via Eclipse Update Manager http://download.eclipse.org/tools/pdt/updates/ oder von der Projekt Homepage www.eclipse.org/pdt/ herunterladen und installieren.
Zend Server Debugger Binaries installieren
- Debugger Extension Binaries ZendDebugger-5.2.10-darwin8.6-uni von http://downloads.zend.com/pdt/server-debugger/ herunterladen. (Leopard: ZendDebugger-5.2.12-darwin8.6-uni.tar.gz)
- Das Archiv entpacken, das passende Modul ZendDebugger.so an einen sinnvollen Ort wie z.B. /usr/local/zend/ kopieren
- Folgendes in die php.ini:
zend_extension=/usr/local/zend/ZendDebugger.so
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always
- Apache neu starten.
- In phpinfo kontrollieren ob er geladen ist (with Zend Debugger v5.2.10, Copyright (c) 1999-2007, by Zend Technologies)
Achtung: Wenn cc_debug installiert ist und ein debug("xyz"); im Source funktioniert das debuggen ab dem Öffnen des Debugfensters im Browser nicht mehr!
Leopard Apache Startup
Unter Apache lädt der Debugger nicht - Fehlermeldung:
Failed loading /usr/local/zend/ZendDebugger.so: (null)
Abhilfe schafft das laden im 32 Bit Modus:
sudo arch -i386 /usr/sbin/httpd
Aber um das zu automatisieren folgendes in /System/Library/LaunchDaemons/org.apache.httpd.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.apache.httpd</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/arch</string>
<string>-i386</string>
<string>/usr/sbin/httpd</string>
<string>-D</string>
<string>FOREGROUND</string>
</array>
<key>SHAuthorizationRight</key>
<string>system.preferences</string>
</dict>
</plist>
Und um apachectl wieeder verwenden zu können folgendes in /usr/sbin/apachectl
# the path to your httpd binary, including options if necessary
HTTPD='/usr/bin/arch -i386 /usr/sbin/httpd'
Eclipse Debug Setup
Debug PHP Script - interner Browser
Nicht so toll:
- Wählen von: Debug PHP Script
- PHP Executables auf /usr/local/php5/bin setzen
- In /usr/local/php5/bin einen link php.ini auf /usr/local/php5/lib/php.ini setzen
Debug PHP Web Page - interner Browser
Besser:
- Open in Browser, open all Pages
- Als Browser den Internen wählen (Menü: Window/Web-Browser)
- Debug klicken öffnet Browser, dann kann man auch Folgeseiten debuggen
Debug PHP Web Page - externer Browser
Am besten:
- Zunächst Mozilla installieren.
- Den Zend Toolbar für Mozilla installieren - Download unter www.zend.com/en/products/zend_studio/plug_ins
- Open in Browser, open all Pages
- Als Browser den Externen wählen - Mozilla (Menü: Window/Web-Browser)
- Debug klicken öffnet Browser mit der URL - öffnet die Startseite
- Im Mozilla Toolbar all Pages on this Site wählen
- Im Mozilla Toolbar Debug klicken
Nicht zu empfehlen
Zend Executable Debugger Eclipse Plugin - funktioniert nicht!
Dann habe ich von der ct DVD 19/2007 das Zend Executable Debugger Eclipse Plugin 5.2.6 installiert, was aber nicht funktioniert hat (bleibt bei den Breakpoints nicht stehen). Dürfte den Download von downloads.zend.com/pdt/debugger/ entsprechen.
Zum Verwenden Debug konfigurieren als PHP Script mit PHP Executable des ZendDebuger Plugins (dort liegt eine eigene php.ini die das ebenfalls dort befindliche ZendDebuger Plugin einbindet):
org.zend.php.debug.debugger.macosx_5.2.10.v20070826/resources/php5
Das hier eingebaute php stürzt aber leider ab mit folgendem Fehler:
Link (dyld) error:
Symbol not found: _inCoverageBL
Referenced from: ./ZendDebugger.so
Expected in: flat namespace
Nunja, ist eh keine allzu tolle Sache - mit eingebauten PHP debuggen - besser ist es mit dem Standrd PHP des Webservers mit allen php.ini Einstellungen - was in obigen Konfigurationen der Fall ist.